﻿/*------------------------------------------------------------------------

POSTDRAWDDD3D9.HPP v1.0.0

Copyright 楊志賢 CxxlMan, 2015
All Rights Reserved

CTriagleDDD3D.cpp 會在出圖之後，叫用這物件處理登記的善後工作

------------------------------------------------------------------------*/

#if !defined(__POSTDRAWDDD3D9_HPP_Cxxl3D)
#define __POSTDRAWDDD3D9_HPP_Cxxl3D

#include <Render\Render_Win32\Render_Win32_D3D\RENDER_WIN32_D3D9.HPP>
#include <d3dx9.h>

// 元件介面的識別碼
#define IPostDrawDDD3D9_ClassID L"BDB3FE02C9B94cbf9F942FE095D7A4F1"


namespace Cxxl3D
{

// 要放入 IPostDrawDDD3D9 的介面
class IPostDrawNotice:virtual public CxxlMan::cxxlObject
{

public:
  // Constructor
  IPostDrawNotice()
    :cxxlObject(CxxlMan::Spirit_Easy)
  {
  }

  // Destructor
  virtual ~IPostDrawNotice()
  {
  }

  // IPostDrawDDD3D9 經此函數通知
  virtual void cxxlFASTCALL Notice(LPDIRECT3DDEVICE9 pDEVICE9) = 0;
};


class IPostDrawDDD3D9:public IDatagramDisposal_D3d9
{
public:
  // Constructor
  IPostDrawDDD3D9()
    :CxxlMan::cxxlObject(CxxlMan::Spirit_Easy)
  {
  }

  // Destructor
  virtual ~IPostDrawDDD3D9()
  {
  }

  virtual void cxxlFASTCALL Add(const CxxlMan::Smart_Ptr<IPostDrawNotice> &IPostDrawNotice_Arg) = 0;
  virtual void cxxlFASTCALL Del(const CxxlMan::Smart_Ptr<IPostDrawNotice> &IPostDrawNotice_Arg) = 0;
};

}   /* namespace Cxxl3D */
#endif
